home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 (Alt) / MACD 5.bin / workbench / time / rendercalc / rendercalc.doc < prev    next >
Encoding:
Text File  |  1994-03-11  |  46.8 KB  |  919 lines

  1.                               RenderCalc v1.46
  2.  
  3.                        Author: Daniel S. Milling Jr.
  4.  
  5.                   Copyright © 1994 Daniel S. Milling Jr.
  6.                             All Rights Reserved
  7. ----------------------------------------------------------------------------
  8.  
  9. DISCLAIMER
  10.  
  11. The author makes no warranties or representations, either expressed or
  12. implied, with respect to the program and information included herein.
  13. The product presented herein is being supplied on an "as is" basis and
  14. is expressly subject to change without notice.  You use this software at
  15. your own risk.  In no event will the author be held liable for direct,
  16. indirect, incidental, or consequential damages resulting from the use or
  17. misuse of the program and information provided herein.
  18.  
  19.  
  20.  
  21. DISTRIBUTION
  22.  
  23. RenderCalc is a Shareware program.  The RenderCalc program, the
  24. distribution materials and the registration keyfiles are
  25. Copyright © 1994 Daniel S. Milling Jr. All Rights Reserved.
  26.  
  27. If you use this program regularly, please send in the registration fee
  28. of $15(US) to the author of the program.  The address is given at the bottom
  29. of the Registration.form file.  Please see the Registration.readme file for
  30. more information regarding registration and the keyfiles.
  31.  
  32. RenderCalc is freely redistributable in it's original form to any bulletin
  33. board, public domain software collection, or network system as long as the
  34. original archive is kept intact in it's entirety and remains unaltered and
  35. as long as no fee, other than nominal media cost, is charged for
  36. distribution.
  37.  
  38. The keyfiles which are sent to registered users may not be distributed
  39. and are for the sole use of the registered user.  Since the keyfile contains
  40. the encrypted name of the registered user, among other information, it would
  41. behoove the user to keep it to him or herself.  Any circulated keyfiles, if
  42. brought to the attention of the programmer, will be rendered useless in
  43. updated versions of the program and that user will be removed from any future
  44. update lists.  Spread the program, not the keyfile.
  45.  
  46. This program, in whole or in part, may not be included in any commercial
  47. package without the prior written consent of the author.
  48.  
  49.  
  50.  
  51. INTRODUCTION
  52.  
  53. This program originally grew from my need to quickly and easily calculate
  54. the number of frames it would take for an object moving X miles per hour
  55. to move Y feet.  This was a necessity for some animations I was creating.
  56. I banged out the original C code for the CLI version in no more than ten
  57. minutes.  Pretty easy.  Since that day, I thought it would be very nice to
  58. have a GUI to go along with this program.  After toying around with GUI
  59. programming on and off for a couple of months between rendering, I finally
  60. came up with RenderCalc 1.0, my first program with a GUI.
  61.  
  62. Between RenderCalc v1.0 and the current revision, there have been MANY
  63. additions and improvements.
  64.  
  65.  
  66. Features:
  67. ---------
  68.  
  69. - Ability to enter values for Speed and Distance and receive output telling
  70.   the user how many total frames, seconds, minutes and the length of time, in
  71.   the specified time code format, that the motion will take.
  72.  
  73. - The Speed, Distance and Length Input Gadgets have Cycle gadgets attached
  74.   to them which allows you to change the units of the entered number 'on the
  75.   fly.'  This gives you instantaneous updates without having to re-type the
  76.   number.
  77.  
  78. - Table of conversions between units of length.  Supported units are
  79.   inches, feet, yards, miles, millimeters, meters and kilometers.
  80.  
  81. - Ability to change the units of ANY inputted number and have all of the
  82.   values update, relative to the new units, on the fly.  This saves having
  83.   to re-type the values.
  84.  
  85. - If you want to convert a number to different units, you may enter
  86.   that number into the Length gadget and see the printed results in the
  87.   conversion table below.
  88.  
  89. - The table of conversions is linked to the Distance and Length gadgets,
  90.   which means that any number entered in either gadget will be converted and
  91.   printed into the table.  The reason for this is that if you enter a
  92.   number into the Distance gadget and would like to know what it converts
  93.   to in units of a different system, you don't have to re-type it into the
  94.   Length gadget.  It is automatically calculated and printed for you.
  95.  
  96. - SMPTE non-drop frame, EBU and Film time code supported.  SMPTE drop frame
  97.   is NOT implemented at this time.
  98.  
  99. - Ability to enter Time Code In and Out points as well as a Duration.  The
  100.   time code values are printed out under the Time Code Output section.  The
  101.   time code input has two modes of operation.  You may enter Time Code In and
  102.   Time Code Out points which results in Duration being the final output value.
  103.   You may also enter a Time Code In and a Duration which will give you the
  104.   Time Code Out as your final value.
  105.  
  106. - Ability to add/subtract either timecode values or a number of frames
  107.   from any of the Timecode Input values.  This saves a lot of time and comes
  108.   in quite handy when you need to alter an already inputed value.
  109.  
  110. - Ability to enter a decimal frame value and have it converted to the
  111.   appropriate time code, relative to the current Time Code Type.
  112.  
  113. - Ability to change the Time Code Type 'on the fly.'  This means that you
  114.   may switch between the supported time code formats and see the updated
  115.   results immediately without having to re-enter the values.
  116.  
  117. - Two informational text boxes have been added.  Since two of the program
  118.   functions have multiple output modes, these two text boxes will now tell
  119.   the user which is the current mode.
  120.  
  121. - A Zoom gadget which shrinks the program window.  Instead of having
  122.   to quit the program, the user may click on the Zoom gadget.  Doing this
  123.   shrinks down the RenderCalc window, getting it out of the way.  Clicking
  124.   again will restore the window to it's normal size.
  125.  
  126. - Keyfile system which allows for easy registration.  Upon registration,
  127.   you will receive a personalized ASCII keyfile which will permanently remove
  128.   ALL instances of the Shareware Notice.  These instances include starting and
  129.   exiting the program as well as popping up at random.  The Shareware
  130.   notice will never appear again, unless the keyfile is deleted or tampered
  131.   with.  The keyfile will work with all future versions of the program.  If,
  132.   for some reason, the keyfile code changes, all registered users will receive
  133.   an updated keyfile as soon as possible.
  134.  
  135.  
  136.  
  137. Requirements
  138. ------------
  139. - Kickstart 2.x or above.
  140.  
  141.  
  142.  
  143. INSTALLATION
  144.  
  145. To install RenderCalc, just move the RenderCalc program icon into the
  146. desired drawer through Workbench.  You may now run it by double clicking on
  147. the program icon.  From CLI just type in the program name when you are in
  148. it's directory or include the full path if you're not.
  149.  
  150.  
  151.  
  152.  
  153. PURPOSE
  154.  
  155. The purpose of this program is to provide the user with three essential
  156. tools.
  157.  
  158.   - The first is the ability to calculate the number of frames needed
  159.     to represent a moving object of known speed and known linear distance
  160.     travelled.  This is important for creating accurate animations of
  161.     moving objects such as cars.
  162.  
  163.   - The second tool is the ability to quickly and easily convert numbers
  164.     between different common units of length.
  165.  
  166.   - The third purpose is to provide the user with the ability to easily and
  167.     quickly calculate Time Code durations from an IN and OUT point and also to
  168.     Calculate an OUT point from an IN point and a duration.  These conversion
  169.     may be done interchangeably between the three supported time code formats.
  170.  
  171.  
  172.  
  173. HOW TO USE THE PROGRAM
  174.  
  175. When you run the program you will see a requester showing you the Shareware
  176. message.  This is a reminder that you should register the program if you use
  177. it regularly.  This requester will also appear upon exiting the program as
  178. well.  Please read the Registration.readme file for more information.
  179.  
  180. After clicking the 'Continue' button, the Shareware requester will disappear.
  181. You will now be presented with the main program.
  182.  
  183. There are three main input/output sections to the program.  They are:
  184.  
  185.     I. Frame Calculator
  186.    II. Units Converter
  187.   III. Time Code Calculator
  188.  
  189. All three sections are interconnected more or less.  This means that data
  190. entered into one section may affect the output of another section.
  191.  
  192.  
  193. I. Frame Calculator
  194.  
  195. The Frame Calculator takes the input of a speed and a distance and
  196. calculates how many frames it will take for a body to move that distance,
  197. while travelling at that speed.
  198.  
  199.   NOTE: This will only be accurate for linear movements.  At this present
  200.         time there is no implementation for the calculation of movement
  201.         through an arc or anything other than a linear path.  At this time
  202.         there is no implementation of variable speeds through a distance,
  203.         meaning that positive and negative accelerations are not accounted
  204.         for.  Only constant velocities are handled at this time.
  205.  
  206. The Frame Calculator consists of two input gadgets.  They are the Speed
  207. and Distance Gadgets.  Each gadget has one or more cycle gadgets attached
  208. to them.  The cycle gadgets tell the program which units to use in the
  209. conversion process.
  210.  
  211.   SPEED INPUT - The Speed gadget is attached to two cycle gadgets.  The
  212.                 first cycle gadget gives the units of distance while the
  213.                 second cycle gadget gives the units of time.  Together you
  214.                 will get a valid (units of distance) per (units of time)
  215.                 measurement of speed.
  216.  
  217.                 To enter input, click anywhere in the Speed input box, if a
  218.                 cursor is not present already, a cursor will then appear.
  219.                 Once the cursor is in the Speed input box, type in the value
  220.                 and then hit <RETURN> when you are done.
  221.  
  222.                 The first cycle gadget, which represents the unit of
  223.                 distance, may be in units of inches, feet, yards, miles,
  224.                 millimeters, meters or kilometers.  The default unit is MILES.
  225.                 To change the units of this gadget, just click on it.  For
  226.                 every click you will cycle through all of the possible
  227.                 choices.
  228.  
  229.                 The second cycle gadget, which represents the units of
  230.                 time, may be in units of seconds, minutes or hours.
  231.                 The default unit is HOURS.  To change the units of this
  232.                 gadget, just click on it.  For every click you will cycle
  233.                 through all of the possible choices.
  234.  
  235.  
  236.   DISTANCE INPUT - The Distance gadget is attached to one cycle gadget.
  237.                    This cycle gadget gives the units of distance that the
  238.                    body will move through.  This value, with it's units,
  239.                    are used to calculate the number of frames it will take
  240.                    for a body to move through that distance while travelling
  241.                    at that speed.
  242.  
  243.                    To enter input, click anywhere in the Distance input box,
  244.                    if a cursor is not present already, a cursor will then
  245.                    appear.  Once the cursor is in the Distance input box, type
  246.                    in the value and then hit <RETURN> when you are done.
  247.  
  248.                    The cycle gadget, which represents the units of distance
  249.                    travelled, may be in units of inches, feet, yards, miles,
  250.                    millimeters, meters or kilometers.  The default unit is
  251.                    FEET.  To change the units of this gadget, just click on
  252.                    it.  For every click you will cycle through all of the
  253.                    possible choices.
  254.  
  255.   For each of these two input gadgets, the user may input numbers of no more
  256.   than 6 decimal places or a total of 10 numerical characters including
  257.   decimal point.  Spaces and other characters are not allowed and will not
  258.   produce output.
  259.  
  260.  
  261. The Frame Calculator also consists of an output sub-section which shows the
  262. output in four different units.  These units are Frames, Seconds, Minutes
  263. and a Time Code value.  In the case of the Distance input gadget, we have
  264. another output to the Unit Conversion Table.  See the section on the Unit
  265. Conversion Table for a complete description of this feature.
  266.  
  267.  
  268.   NOTE: Each output is a separate entity.  For the values entered in the
  269.         Speed and Distance gadgets, you will have a Total of Frames, a Total
  270.         of Seconds and a Total of Minutes printed out.  These first three
  271.         outputs are total values.  For example if you have a reading of 1181
  272.         Frames, 39.4 seconds and 0.7 minutes this means that 1181 Frames is
  273.         equal to 39.4 seconds which is equal to 0.7 minutes.  This is meant
  274.         as a gauge giving the user a sense of how much time 'x' number of
  275.         Frames will take in more familiar units.
  276.  
  277.   The fourth output represents the time code duration that 'x' number of
  278.   frames would span.  This is relative to the current TIMECODE TYPE.
  279.  
  280.  
  281.   ACCURACY:  THE FRAMES value is rounded up if it is 'x.5' or greater.  If
  282.              you don't like this, just add or subtract a frame.  It seems that
  283.              for values of 60 frames or more the rounding won't make too much
  284.              of a difference.
  285.  
  286.              THE SECONDS value is rounded up if it is 'x.x5' or greater.  This
  287.              is not meant to be a very accurate number but only to give a
  288.              'close-enough' estimate of how many seconds are required for
  289.              'x' frames.
  290.  
  291.              THE MINUTES value is rounded up if it is 'x.x5' or greater.  This
  292.              also is not meant to be a very accurate number.  It is meant to
  293.              only give a 'close-enough' estimate of how many minutes are
  294.              required for 'x' number of Frames.
  295.  
  296.              THE TIME CODE is accurate to the FRAMES value.  This means
  297.              that the value given in the Frames output is represented exactly
  298.              in the time code output.  This may be useful if you wanted to see
  299.              what the time code duration is for that Frames value.
  300.  
  301.  
  302.   CHANGING UNITS: Any cycle gadget, for the Speed or Distance inputs, may be
  303.                   clicked at any time.  When you click on the cycle gadget
  304.                   you will change the units of the corresponding value.  You
  305.                   may do this an unlimited number of times.  After you click
  306.                   on the cycle gadget, any values printed out in the Output
  307.                   sub-section of the Frame Calculator section will be updated
  308.                   to reflect the new units.  This update occurs 'on-the-fly'
  309.                   meaning that you do not have to re-enter any number again
  310.                   in order to change it's units.  The conversion is done
  311.                   automatically.
  312.  
  313.                   Clicking on the cycle gadget, attached to the Distance
  314.                   input, will also affect the units printed out in the Units
  315.                   Conversion Table.  Please see the section on the Units
  316.                   Conversion Table for a complete description of this feature.
  317.  
  318.   ERRORS: If the values for the Frame Calculator output are either too large
  319.           or too small you will see '------' printed in the corresponding
  320.           output box.  For example, Frames cannot exceed 999999 (if you really
  321.           need this many frames you need to get out more... :-) ) and cannot
  322.           be less than 1.  However, Seconds and Minutes may be zero but only
  323.           when the Frames output is VERY low.  Sometimes you will get a value
  324.           for Frames and Minutes but not Seconds.  This occurs only when the
  325.           Frame count is TOO high anyway.  Don't worry, as long as there is
  326.           a Frame output value, you are ok.  Frames is the value you want
  327.           anyway.
  328.  
  329.           If the Frame count is illegal then your Time Code output will be
  330.           set to 00:00:00:00.  Otherwise, you will have a valid time code
  331.           reading relative to the Time Code Type you have selected.  Please
  332.           see the section on Selecting The Time Code Type for a complete
  333.           description of this function.
  334.  
  335. To the right of the above mentioned output subsection and below the Units
  336. Conversion Table, there is a text output section.  In this section there are
  337. two text boxes.  Each text box describes the output of one area of the
  338. program.  Since some areas of the program may have different modes of
  339. data output, these boxes will inform the user as to which form of output
  340. is currently shown.  Each box represents only one area.  These informational
  341. text boxes are as follows:
  342.  
  343.   CONVERSION - This text box will tell the user what data is currently being
  344.        TABLE   displayed in the Units Conversion Table, just above this
  345.                section.  Since both the DISTANCE and LENGTH string gadgets
  346.                may affect the currently displayed data, this output box
  347.                will inform the user as to which data is currently being
  348.                shown.  There are only two available modes.  The first is
  349.                DISTANCE MODE which tells the user that the data displayed
  350.                in the Unit Conversion Table has been supplied by the number
  351.                inputted into the DISTANCE string gadget.  The second is
  352.                LENGTH mode, which tells the user that the data displayed
  353.                in the Units Conversion Table has been supplied by the number
  354.                inputted into the LENGTH string gadget.
  355.  
  356.                The CONVERSION TABLE text box display may be affected by
  357.                entering a number into either the DISTANCE or LENGTH string
  358.                gadgets, as well as by clicking on the DISTANCE or LENGTH
  359.                cycle gadgets.  For example, if a number was entered into the
  360.                DISTANCE gadget and then a number was entered into the LENGTH
  361.                gadget, the CONVERSION TABLE text box would display LENGTH
  362.                MODE.  By clicking on the DISTANCE cycle gadget, the DISTANCE
  363.                data will be displayed in the Unit Conversion Table and the
  364.                CONVERSION TABLE text box will change accordingly from LENGTH
  365.                MODE to DISTANCE MODE.
  366.  
  367.   TIMECODE - This text box will tell the user what data is currently being
  368.     METHOD   displayed in the TIMECODE OUTPUT section.  Since there are two
  369.              types of timecode output which may be generated, this text box
  370.              will tell the user which is the current mode.  The first
  371.              mode is DURATION MODE.  This mode is active when the user
  372.              enters a timecode IN point and a timecode OUT point.  The
  373.              resulting value is a duration value.  Thus, DURATION MODE tells
  374.              the user that the DURATION value displayed under the TIMECODE
  375.              OUTPUT section is the final result from the calculation of
  376.              timecode IN and OUT points.
  377.  
  378.              The second mode is OUT MODE.  This mode is active when the user
  379.              enters a timecode IN point and a timecode DURATION.  The
  380.              resulting value is an OUT point value.  Thus, OUT MODE tells the
  381.              user that the OUT point value displayed under the TIMECODE
  382.              OUTPUT section is the final result from the calculation of a
  383.              timecode IN point and a DURATION value.
  384.  
  385.              See the Timecode section for more information.
  386.  
  387.  
  388.  
  389. II. Units Converter
  390.  
  391. The Units Converter will take any inputted number and convert it to any
  392. supported unit.
  393.  
  394. The Length input gadget is where you may enter the number you want to
  395. convert.  The Length input gadget has a cycle gadget attached to it which
  396. specifies the units of the Length gadget value.
  397.  
  398.   LENGTH INPUT - This is where you may input a value which will be converted
  399.                  and printed out into the Units Conversion Table.  The number
  400.                  may have as many as six decimal places or a total of fifteen
  401.                  numerical digits, including the decimal point.  Spaces and
  402.                  other characters are not allowed and will not produce
  403.                  output.
  404.  
  405.                  To enter input, click anywhere in the Length input box, if a
  406.                  cursor is not present already, a cursor will then appear.
  407.                  Once the cursor is in the Length input box, type in the value
  408.                  and then hit <RETURN> when you are done.
  409.  
  410.                  If the Length Input value is illegal, the conversion table
  411.                  will fill with zeros, thus telling you the value is illegal.
  412.  
  413.                  If the Length Input value is legal but the resulting
  414.                  conversion yields an illegal number, that conversion field
  415.                  will be filled with many '---------''s all the way across the
  416.                  field.  This can occur frequently when you change the units
  417.                  of the value to be converted.
  418.  
  419.                  Attached to the Length gadget is a cycle gadget which
  420.                  specifies the units of the inputted value.  The units may
  421.                  be of inches, feet, yards, miles, millimeters, meters or
  422.                  kilometers.  To change the units of this gadget, just click
  423.                  on it.  For every click you will cycle through all of the
  424.                  possible choices.
  425.  
  426. After you enter a number into the Length gadget and hit <RETURN> the
  427. number, if valid, will be converted and printed into the Units Conversion
  428. Table.  The Units Conversion Table can be found directly below the Length
  429. Input gadget.
  430.  
  431.  
  432.   UNITS CONVERSION - The numbers printed in the table will correspond with the
  433.              TABLE   units printed to the right of them.  The base unit is
  434.                      taken from the cycle gadget which is attached to the
  435.                      Length input gadget.
  436.  
  437.                      NOTE: when a value is entered into the Distance Input
  438.                            gadget, the base unit is then taken from the Units
  439.                            cycle gadget associated with Distance.
  440.  
  441.                      For example, if you enter the number 5280 into the
  442.                      Length gadget and hit <RETURN> you  will be presented
  443.                      with your converted output.  If the cycle gadget was
  444.                      set to FEET, you should be able to look up FEET on the
  445.                      Units Conversion Table and see that the  value printed
  446.                      in the FEET box is '5280', the same number you inputted.
  447.                      This tells you, that the number you entered  was
  448.                      indeed 5280 FEET.  If we look at miles we will see
  449.                      that, yes indeed, 5280 feet is equal to 1 mile.  Also,
  450.                      the CONVERSION TABLE text box, just below the Unit
  451.                      Conversion Table will read 'LENGTH MODE.'
  452.  
  453.   DISTANCE INPUT - When a value is entered into the Distance Input gadget,
  454.   AND THE UNITS    the Units Conversion Table will then be updated with this
  455.   CONVERSION       data relative to it's units.  For example, if you had
  456.   TABLE            already entered 5280 into the Length Input gadget with
  457.                    units of FEET, and you enter the number 12 into the
  458.                    Distance Input gadget, with units of MILES, the new output
  459.                    of the Units Conversion Table will show that 12 miles is
  460.                    the entered number and that 12 miles is equal to 63360
  461.                    feet.  Now the CONVERSION TABLE text box, just below the
  462.                    Unit Conversion Table will read 'DISTANCE MODE.'
  463.  
  464.                    If the Distance Input value is illegal, the conversion
  465.                    table will fill with zeros, thus telling you the value is
  466.                    illegal.
  467.  
  468.                    If the Distance Input value is legal but the resulting
  469.                    conversion yields an illegal number, that conversion field
  470.                    will be filled with many '---------''s all the way across
  471.                    the field.  This can occur frequently when you change the
  472.                    units of the value to be converted.
  473.  
  474.   GOING FROM LENGTH - It is very easy to restore the previous data which was
  475.   TO DISTANCE AND     outputted to the Units Conversion Table.  For example,
  476.   VICE VERSA          if you entered a value into the Length Input gadget and
  477.                       received output, you may then enter a value into the
  478.                       Distance Input gadget and receive output.  The value
  479.                       which was previously in the Length input gadget is still
  480.                       there.  The way to retrieve this value is to click
  481.                       anywhere inside the Length Input gadget and hit the
  482.                       <RETURN> key.  If you didn't type anything else, you
  483.                       should get your previous Unit Conversion Table values.
  484.                       If you now wanted to see the conversion of the Distance
  485.                       Input value, just click anywhere inside the Distance
  486.                       Input value box and then hit <RETURN>.  If you didn't
  487.                       type anything else you should see the Units Conversion
  488.                       Table reflect the previous Distance value.
  489.  
  490.                       You may also click on the Units cycle gadget for either
  491.                       the Length Input or Distance Input gadgets.  By doing so
  492.                       you will update the Units Conversion Table with the
  493.                       Input value along with it's respective units.
  494.  
  495.                       For example.  If the last number converted was input
  496.                       from the Length gadget, and you then click on the
  497.                       Distance Units cycle gadget, the Units Conversion Table
  498.                       will be updated with the Distance Input value, relative
  499.                       to it's new units.  The CONVERSION TABLE text box will
  500.                       also now read 'DISTANCE MODE' as well.
  501.  
  502.                       You may click back and forth among the Units gadgets
  503.                       an unlimited number of times.
  504.  
  505.   ACCURACY - All of the converted values should be accurate to within
  506.              +0.0005 and -0.0005.  I rounded the number to the third decimal
  507.              place with any number of 'x.xxx5' being round up.  I could have
  508.              let the output go to the sixth decimal place, with the number
  509.              'x.xxxxxx5' being rounded up.  This seemed a bit extreme.  If
  510.              there is enough of a response I may restore the six decimal
  511.              place numbers, otherwise it stays as is.
  512.  
  513.              NOTE: If there is any discrepancy with these converted values and
  514.                    'real-world' values I'd appreciate any feedback (my email
  515.                    addresses are listed in the 'About' requester.)  It would
  516.                    be a very simple matter for me to alter my table of
  517.                    conversions in a future revision.  I looked at a conversion
  518.                    table in my Physics book and came up with the neat and
  519.                    simple equation to calculate any conversion factor.  If
  520.                    I made any errors, please report them.
  521.  
  522.  
  523.  
  524.  
  525. III. Time Code Calculator
  526.  
  527. The Time Code Calculator will take any inputted time code IN and OUT point and
  528. tell you the time code duration between these two points.  It will also tell
  529. you the time code OUT point if you enter a time code IN point and a duration.
  530.  
  531. There are three input gadgets associated with the Time Code Calculator.
  532. These are the IN, OUT and DURATION Input gadgets.
  533.  
  534. Next to each of the Timecode Input string gadgets there is a '+' and a '-'
  535. button.  These buttons allow the user to add or subtract either a number of
  536. frames or a valid timecode value, to or from the value next to the respective
  537. button.
  538.  
  539. There is a Time Code Output section right below the Input section which will
  540. tell you the time code relative to the current time code type and the number
  541. of frames each time code value represents.
  542.  
  543.   TIMECODE TYPE - This cycle gadget is situated below the TIME CODE OUTPUT
  544.                   section.  This allows you to select which time code type
  545.                   you wish to work with.  The default is SMPTE 30fps, which
  546.                   is non-drop frame.  The other choices are EBU 25fps and
  547.                   FILM 24fps.  Each choice consists of the timecode name
  548.                   to the left and a number which represents it's frames per
  549.                   second to the right.
  550.  
  551.                   You may change the Time Code Type at any time by clicking
  552.                   on this cycle gadget.  After you select a time code type
  553.                   all of your current time code values will be recalculated
  554.                   to reflect this change.
  555.  
  556.                   NOTE: if your current time code is set to SMPTE (non-drop)
  557.                         and you have entered a number with a FF (frames) value
  558.                         of '29' you have a legal time code value.  But, if you
  559.                         were to change the time code type to Film, the '29',
  560.                         which was previously in the FF (frames) slot, is now
  561.                         illegal, since there are only 24 frames per second
  562.                         in Film as opposed to 30fps in SMPTE non-drop.
  563.                         If this happens, the time code reading in question is
  564.                         then set to the default '00:00:00:00' setting.
  565.                         This is true for any Time Code Output value.
  566.  
  567.                         However, The time code value presented under the
  568.                         'TOTALS' for frames WILL update properly across ALL
  569.                         time code formats.  This allows you to see what length
  570.                         of time 'x' number of frames will take in that
  571.                         specific time code format.  You should also note that
  572.                         ONLY the TIMECODE value for the number of frames will
  573.                         change, NOT the seconds or hours for that number of
  574.                         frames.  The seconds and hours are set to SMPTE
  575.                         30fps (non-drop) and aren't affected by any time code
  576.                         change.  I realize that placing both a time code
  577.                         readout along with the seconds and hours readout is a
  578.                         bit redundant but a friend of mine asked me to
  579.                         leave it.  Seconds and Minutes output may be removed
  580.                         in the future.
  581.  
  582.   ENTERING TIMECODE - There are three input gadgets which allow the user to
  583.   VALUES              enter time code values.  These are the Time Code IN,
  584.                       Time Code OUT and Time Code DURATION input gadgets.
  585.                       There are a number of ways you may input time code
  586.                       values:
  587.  
  588.                       You may input as much of the time code number as you
  589.                       wish.  If you only have 1 second and 20 frames as your
  590.                       IN point, you may type the number as:
  591.  
  592.                                    1:20         or
  593.                                    120          or
  594.                                    01:20        or
  595.                                    0120         or
  596.                                    00000120     or
  597.                                    00:00:01:20
  598.  
  599.                       The program is quite flexible as to how you may enter
  600.                       time code values.  There are a few rules however:
  601.  
  602.                       1) you may enter a number with or without the colon ':'.
  603.                          If you do enter a number with colons, the number must
  604.                          be in one of these formats: (where x is a numerical
  605.                          digit)
  606.  
  607.                                         x:xx or
  608.                                        xx:xx or
  609.                                      x:xx:xx or
  610.                                     xx:xx:xx or
  611.                                   x:xx:xx:xx or
  612.                                  xx:xx:xx:xx
  613.  
  614.                          The following are illegal:
  615.  
  616.                                          x:x or
  617.                                    x:x:xx:xx or
  618.                                    xx:xx:x:x (these are only a few.)
  619.  
  620.                       2) Here is a simple rule to follow when using colons in
  621.                          your time code value.  A time code, if it includes
  622.                          colons, is legal, if, to the RIGHT of every colon,
  623.                          there are two numerical digits.
  624.  
  625.                          You may have a single digit to the LEFT of ONLY the
  626.                          LEFTMOST colon.  The reason for this is the way the
  627.                          program reads the time code value.
  628.  
  629.                       3) If you enter a time code value with or without
  630.                          colons, then take note that the number is read from
  631.                          right to left.  Thus, if you enter the number 120
  632.                          (or 1:20) it will be interpreted as 1 second and 20
  633.                          frames.  If you really meant 1 hour and 20 minutes,
  634.                          the time code value would have to be input as
  635.                          1200000 (or 1:20:00:00).
  636.  
  637.                       4) The only character that may be used to separate the
  638.                          time code numbers is the colon.  Any other characters
  639.                          input will be treated as illegal, thus making the
  640.                          entire time code value illegal.  This will cause the
  641.                          default '00:00:00:00' value to be output.
  642.  
  643.  
  644. All Time Code Input values and calculations are output to the Time Code Output
  645. area which is directly below the Time Code Input area.  Under the TIMECODE
  646. OUTPUT heading you will notice the (HH:MM:SS:FF) label.  This tells you that
  647. the time code output, from left to right, is in hours, minutes, seconds and
  648. frames.
  649.  
  650.  
  651. TIMECODE IN - You may enter any valid time code number into this input gadget.
  652.       INPUT   After you enter the time code value hit the <RETURN> key.  If
  653.               valid, the time code will be displayed under the Time Code IN
  654.               field of the Time Code Output area.  You will also see the
  655.               number of frames which this time code value represents, relative
  656.               to the current time code type, to the right of the time code
  657.               value.
  658.  
  659.               Time Code IN input has two modes:
  660.  
  661.               OUT MODE
  662.  
  663.               If the last number you entered was a Time Code DURATION value,
  664.               you will see the Time Code OUT output field display a time code.
  665.               This time code is the length of time, in time code, of the IN
  666.               point plus the DURATION value (IN + DURATION = OUT.)  Next to
  667.               the OUT output field is the number of frames that the OUT
  668.               Output time code number represents relative to the current
  669.               time code type.  The TIMECODE METHOD text box will now display
  670.               'OUT MODE' as the current mode of output.
  671.  
  672.               If the entered value for the Time Code IN point is illegal,
  673.               ONLY the Time Code IN point will be set to the default value
  674.               of '00:00:00:00'.  The Time Code OUT and DURATION should then
  675.               equal one another since, in this case, IN + DURATION = OUT
  676.               where IN is equal to zero, OUT is then equal to DURATION.
  677.  
  678.  
  679.               DURATION MODE
  680.  
  681.               If the last number you entered was a Time Code OUT value,
  682.               you will see the Time Code DURATION field display a time code.
  683.               This time code is the length of time, in time code, between the
  684.               IN and OUT points.  Next to the Duration output field is the
  685.               number of frames that the Duration Output time code number
  686.               represents relative to the current time code type.  The TIMECODE
  687.               METHOD text box will now display 'DURATION MODE' as the current
  688.               mode of output.
  689.  
  690.               If the entered value for the Time Code IN point is illegal,
  691.               ONLY the Time Code IN point will be set to the default value
  692.               of '00:00:00:00'.  The Time Code OUT and DURATION should then
  693.               equal one another since, in this case, OUT - IN = DURATION
  694.               where IN is equal to zero, OUT is then equal to DURATION.
  695.  
  696.  
  697.  
  698. TIMECODE OUT - You may enter any valid time code number into this input
  699.        INPUT   gadget.  After you enter the time code value hit the <RETURN>
  700.                key.  If valid, the time code will be displayed under the
  701.                Time Code OUT field of the Time Code Output area.  You will
  702.                also see the number of frames which this time code value
  703.                represents, relative to the current Time Code Type, to the
  704.                right of the time code value.
  705.  
  706.                If you previously entered a Time Code IN point, you will see
  707.                the Time Code Duration output field display a time code.  This
  708.                time code is the length of time, in time code, between the IN
  709.                and OUT points.  Next to the Duration output field is the
  710.                number of frames that the Duration Output time code number
  711.                represents relative to the current time code type.
  712.  
  713.                If the entered value for the Time Code OUT point is illegal,
  714.                both the Time Code Out and Time Code Duration fields will
  715.                display the default '00:00:00:00' time code value.
  716.  
  717.  
  718.  
  719. TIMECODE     - You may enter any valid time code number into this input
  720. DURATION       gadget.  After you enter the time code value hit the <RETURN>
  721.    INPUT       key.  If valid, the time code will be displayed under the Time
  722.                Code DURATION field of the Time Code Output area.  You will
  723.                also see the number of frames which this time code value
  724.                represents, relative to the current time code type, to the
  725.                right of the time code value.
  726.  
  727.                If you previously entered a Time Code IN point, you will see
  728.                the Time Code OUT output field display a time code.  This time
  729.                code is the length of time, in time code, of the IN point plus
  730.                the DURATION value (IN + DURATION = OUT.)  Next to the OUT
  731.                output field is the number of frames that the OUT Output time
  732.                code number represents relative to the current time code type.
  733.  
  734.                If the entered value for the Time Code DURATION point is
  735.                illegal, both the Time Code Out and Time Code Duration fields
  736.                will display the default '00:00:00:00' time code value.
  737.  
  738.  
  739. Next to each of the Timecode Input String gadgets, you will find two buttons.
  740. One button is marked '+' while the other button is marked '-'.  These buttons
  741. allow the user to add to or subtract from the value which they are next to.
  742. There are three rows of '+' and '-' buttons.  One set of each button is next
  743. to all three of the Timecode Input strings.  Each set of buttons does the
  744. same thing as the rest.  Thus, these buttons will only be described once.
  745.  
  746.  
  747. THE '+' - When the user clicks on this button, a small window will appear
  748. BUTTON    more or less in the middle of the screen.  The title of the window
  749.           will display what value will be modified by the addition.  This
  750.           will read either; IN ADDITION, OUT ADDITION or DURATION ADDITION.
  751.           Within this window there are three gadgets which may be manipulated.
  752.           These gadgets are:
  753.  
  754.           INPUT  - This allows the user to enter either a decimal number or
  755.           GADGET   a valid timecode value.  The way the input is interpreted
  756.                    depends on the state of the cycle gadget found below it.
  757.                    After entering a value, hitting the return key will
  758.                    process the input and apply the input value to the
  759.                    existing data.  After return is hit, the input window
  760.                    will disappear.  If the entered value causes an overflow
  761.                    or underflow (ie. negative,) then the timecode value to
  762.                    the right of the button, which it represents, will be set
  763.                    to zero.
  764.  
  765.           INPUT  - There are two types of input which may be entered into the
  766.           CYCLE    Input Gadget.  This cycle gadget controls the type of
  767.           GADGET   input.  This cycle gadget should usually be changed before
  768.                    a value is entered into the Input Gadget.  The two types
  769.                    of input are as follows:
  770.  
  771.                    NUMBER OF - When this is the selected state, the number
  772.                       FRAMES   entered into the Input Gadget is considered a
  773.                                decimal value.  This decimal value is the
  774.                                number of frames the user desires to add to
  775.                                the currently entered value.  The currently
  776.                                entered value is found in the string gadget
  777.                                to the right of the button.  This decimal
  778.                                value must be a non-negative whole number.
  779.                                If anything else is entered nothing will
  780.                                happen.
  781.  
  782.                    TIMECODE - When this is the selected state, the value
  783.                       VALUE   entered into the Input Gadget is considered a
  784.                               Timecode value.  This timecode value is added
  785.                               to the currently entered Timecode value.  The
  786.                               currently entered value is found in the string
  787.                               gadget to the right of the button.  This
  788.                               timecode value must be a valid timecode value
  789.                               as outlined in the ENTERING TIMECODE VALUES
  790.                               section.  If the format is incorrect, nothing
  791.                               will happen.  The user must remember that the
  792.                               timecode value to be added, must conform to the
  793.                               currently selected timecode type.  If it does
  794.                               not conform, no calculation will occur.
  795.  
  796.           CANCEL - If the user clicks on this button, input will be aborted,
  797.           GADGET   the input window will disappear and no data will have been
  798.                    modified.
  799.  
  800.           NOTE: If the user has a number of frames and wants to get the
  801.                 time code value for that number of frames there is a way
  802.                 to accomplish this.  First the Time Code Input string gadget
  803.                 of either IN, OUT or DURATION must either be empty or equal
  804.                 to zero.  Click on the '+' button next to the appropriate 
  805.                 string gadget.  The Addition input window will pop up.  Make
  806.                 sure that the cycle gadget within that window is set to
  807.                 NUMBER OF FRAMES.  Type in the number of frames and hit
  808.                 <RETURN>.  The value will then be calculated and converted
  809.                 into a valid timecode value relative to the current TIMECODE
  810.                 TYPE.
  811.  
  812.  
  813. THE '-' - When the user clicks on this button, a small window will appear
  814. BUTTON    more or less in the middle of the screen.  The title of the window
  815.           will display what value will be modified by the subtraction.  This
  816.           will read either; IN SUBTRACTION, OUT SUBTRACTION or DURATION
  817.           SUBTRACTION.  Within this window there are three gadgets which may
  818.           be manipulated.  These gadgets are:
  819.  
  820.           INPUT  - This allows the user to enter either a plain number or a
  821.           GADGET   valid timecode value.  The way the input is interpreted
  822.                    depends on the state of the cycle gadget found below it.
  823.                    After entering a value, hitting the return key will
  824.                    process the input and apply the input value to the
  825.                    existing data.  After return is hit, the input window
  826.                    will disappear.  If the entered value causes an overflow
  827.                    or underflow (ie. negative,) then the timecode value to
  828.                    the right of the button, which it represents, will be set
  829.                    to zero.
  830.  
  831.           INPUT  - There are two types of input which may be entered into the
  832.           CYCLE    Input Gadget.  This cycle gadget controls the type of
  833.           GADGET   input.  This cycle gadget should usually be changed before
  834.                    a value is entered into the Input Gadget.  The two types
  835.                    of input are as follows:
  836.  
  837.                    NUMBER OF - When this is the selected state, the number
  838.                       FRAMES   entered into the Input Gadget is considered a
  839.                                decimal value.  This decimal value is the
  840.                                number of frames the user desires to subtract
  841.                                from the currently entered value.  The
  842.                                currently entered value is found in the string
  843.                                gadget to the right of the button.  This
  844.                                decimal value must be a non-negative whole
  845.                                number.  If anything else is entered nothing
  846.                                will happen.
  847.  
  848.                    TIMECODE - When this is the selected state, the value
  849.                       VALUE   entered into the Input Gadget is considered a
  850.                               Timecode value.  This timecode value is
  851.                               subtracted from the currently entered Timecode
  852.                               value.  The currently entered value is found in
  853.                               the string gadget to the right of the button.
  854.                               This timecode value must be a valid timecode
  855.                               value as outlined in the ENTERING TIMECODE
  856.                               VALUES section.  If the format is incorrect,
  857.                               nothing will happen.  The user must remember
  858.                               that the timecode value to be added, must
  859.                               conform to the currently selected timecode
  860.                               type.  If it does not conform, no calculation
  861.                               will occur.
  862.  
  863.           CANCEL - If the user clicks on this button, input will be aborted,
  864.           GADGET   the input window will disappear and no data will have been
  865.                    modified.
  866.  
  867.  
  868. MENUS
  869.  
  870. The only two menu items are the 'About' and 'Quit' items.  You may see some
  871. information regarding the program by selecting the 'About' menu item or by
  872. pressing the RightAmiga-A key combination.  You may quit the program by either
  873. clicking on the Close gadget, by selecting the 'Quit' menu item or by pressing
  874. the RightAmiga-Q key combination.
  875.  
  876.  
  877.  
  878. BUG REPORTS
  879.  
  880. If you happen to find what you may think is a bug, please let me know.  You
  881. may report a bug by either Internet Email or postal mail.  You will find my
  882. Email addresses when you click on the 'About' menu item or it's associated
  883. button within the program.  My postal address is at the bottom of the
  884. Registration.form file which is also included with this archive.
  885.  
  886.  
  887.  
  888. CREDITS
  889.  
  890. Programming and Manual Writing:
  891.  
  892.    Daniel S. Milling Jr.
  893.  
  894.  
  895.  
  896. Intuition Interface Designed with:
  897.  
  898.    GadToolsBox 2.0 by Jan van den Baard
  899.  
  900.  
  901.  
  902. Intuition Interface modifications by:
  903.  
  904.    Daniel S. Milling Jr.
  905.  
  906.  
  907.  
  908. Compiled with:
  909.  
  910.    SAS C compiler
  911.  
  912.  
  913.  
  914. Special Thanks To:
  915.  
  916.    Larry Styer for Beta Testing  (if there's a bug, it's his fault!! :-)
  917.  
  918.     John Woo for making the coolest action movies ever!
  919.